www.gusucode.com > 灰色预测模型matlab或者lingo源程序例子 > 灰色预测模型matlab或者lingo源程序例子/huiseyuce/huiseyuce 1.txt

    %灰色预测
clc,clear

y0=[15361 12998 9975 6951 4252];
n=length(y0);
%%%%%%%%%%%%%%%%%%%
c=4000;
x0=y0+c;
%%%%%%%%%%%%%%%%%%%
lamda=x0(1:n-1)./x0(2:n);
range=minmax(lamda);
Min_r=exp(-2/(n+1));Max_r=exp(2/(n+2));
if range(1) < Min_r || range(2) > Max_r 
    disp('不适合灰色预测');
else
end

x1=cumsum(x0);
for i=2:n
    z(i)=0.5*(x1(i)+x1(i-1)); %#ok<SAGROW>
end
B=[-z(2:n)',ones(n-1,1)];
Y=x0(2:n)';
u=B\Y;
x=dsolve('Dx+a*x=b','x(0)=x0');
x=subs(x,{'a','b','x0'},{u(1),u(2),x1(1)});
%预测 k 个月份,自己修改其值
k = 1;
yucel=subs(x,'t',0:n-1+k);
digits(6),y=vpa(x);
yuce=[x0(1),diff(yucel)];
%预测的结果值
jieguo=yuce-c;
epsilon=y0-jieguo(1:n);%预测误差
delta=abs(epsilon./y0);%相对误差
rho=1-(1-0.5*u(1))/(1+0.5*u(1))*lamda;
rou=max(rho);